Convergence device with dynamic program throttling that replaces noncritical programs with alternate capacity programs based on power indicator

ABSTRACT

Techniques for conserving power by controlling program execution in a convergence device comprising a battery or other power source and at least one processor. The processor is configured to perform processing operations associated with voice call communication functions and to perform processing operations associated with data communication functions, and is operative to execute critical programs and noncritical programs. The convergence device stores, for at least a given one of a plurality of noncritical programs associated with the data communication functions, an identifier of at least one alternate capacity program capable of performing substantially the same function as the given program but having a different power source capacity associated therewith. Based at least in part on a power indicator representative of remaining capacity or another characteristic of the power source, execution of the given program may be replaced with execution of the alternate capacity program, such that an amount of power source capacity utilizable for the voice call communication functions is increased.

FIELD OF THE INVENTION

The present invention relates generally to processor-based communicationdevices, and more particularly to convergence devices, which may includecommunication devices configured for processing of voice, data, audio,video and other information communicated over a variety of differentmedia.

BACKGROUND OF THE INVENTION

A convergence device typically incorporates a variety of differentcommunication and multimedia data processing functions. One example ofsuch a device is a so-called “smart” telephone, which generallycomprises a processor capable of running multimedia application programsor other programs associated with data communication functions, as wellas programs associated with cellular voice call communication functions.A given smart telephone may be configured, by way of example, to allow auser to retrieve e-mail, browse the Internet, manage personalinformation, and utilize text messaging, while also providing supportfor traditional cellular telephone voice calls.

A more particular example of a convergence device of this type is awireless mobile unit of a recently-developed high-speed CDMAcommunication system such as the 3rd Generation Partnership Project(3GPP) Wideband CDMA (WCDMA) system, described in 3GPP TechnicalSpecifications TS 25.1xx, which are incorporated by reference herein.The convergence device may include, in addition to or in place ofcellular communication functionality, wireless networking functionalityin accordance with the IEEE 802.11 standards, which are incorporated byreference herein, or other suitable wireless networking standards.

Convergence devices often require execution of a number of differenttypes of code, including digital signal processor (DSP) code associatedwith signal processing operations as well as high-level programapplication code written in Java or another object-oriented programminglanguage.

Multithreaded processors particularly well-suited for use in convergencedevices are described in U.S. patent application Ser. No. 10/269,372,filed Oct. 11, 2002 and entitled “Multithreaded Processor With EfficientProcessing For Convergence Device Applications,” which is commonlyassigned herewith and incorporated by reference herein. An illustrativeembodiment of a multithreaded processor as described in U.S. patentapplication Ser. No. 10/269,372 is capable of executing RISC-basedcontrol code, DSP code, Java code and network processing code. Thisprocessor includes a single instruction multiple data (SIMD) vectorunit, a reduction unit, and long instruction word (LIW) compoundedinstruction execution.

Convergence devices are typically configured to operate on batterypower. It is usually desirable in such devices to maintain a certainminimum voice call communication capability as the battery capacitydecreases. Generally, processing associated with data communicationfunctions, such as multimedia application processing, requiressignificantly more computational capacity, and thus expends more batterypower, than cellular voice call communication.

Unfortunately, conventional power conservation techniques are notdesigned to accommodate the particular configuration and functionalityof convergence devices, and thus fail to provide optimal performance insuch devices. Accordingly, a need exists for improved power conservationtechniques for use in convergence devices.

SUMMARY OF THE INVENTION

The present invention provides improved techniques for conserving powerfrom a battery or other power source in a processor-based convergencedevice.

In accordance with one aspect of the invention, techniques are providedfor conserving power by controlling program execution in a convergencedevice comprising a battery or other power source and at least oneprocessor. The processor may comprise a multithreaded processor or othertype of processor. The processor is configured to perform processingoperations associated with voice call communication functions and toperform processing operations associated with data communicationfunctions, and is operative to execute critical programs and noncriticalprograms.

The critical programs may comprise, for example, programs utilized toimplement at least one of an operating system running on the processor,a graphical user interface of the convergence device, and one or more ofthe voice call communication functions.

The noncritical programs are preferably categorized based on powersource capacity into at least two categories including a category at afirst capacity and a category at a second capacity, the first capacitybeing a lower capacity than the second capacity. Each of at least asubset of the plurality of noncritical programs may be in one of anumber of states, including at least an executing state, a pending stateand a sleeping state.

In operation, the convergence device stores, for at least a given one ofa plurality of noncritical programs associated with the datacommunication functions, an identifier of at least one alternatecapacity program capable of performing substantially the same functionas the given program but having a different power source capacityassociated therewith. Based at least in part on a power indicatorrepresentative of remaining capacity or another characteristic of thepower source, execution of the given program may be replaced withexecution of the alternate capacity program, such that an amount ofpower source capacity utilizable for the voice call communicationfunctions is increased. For example, if the power indicator is below afirst threshold, execution of the given noncritical program is replacedwith execution of an alternate capacity noncritical program havingassociated therewith a lower power source capacity than the givenprogram. Similarly, if the power indicator is not below the firstthreshold, execution of the given noncritical program is replaced withexecution of an alternate capacity program having associated therewith ahigher power source capacity than the given program.

In an illustrative embodiment, the data communication functions maycomprise one or more functions associated with multimedia processing atone or more of a specified data rate, a specified refresh rate and aspecified display resolution. The given program may perform multimediaprocessing at a specified data rate, refresh rate or display resolution,and in this case the alternate capacity program, performingsubstantially the same function as the given program, may performmultimedia processing at a different data rate, refresh rate or displayresolution than the given program.

In accordance with another aspect of the invention, if the powerindicator is below a second threshold that is lower than the firstthreshold, the given noncritical program and the alternate noncriticalprogram may each be set to a sleeping status. Alternatively, if thepower indicator is not below the second threshold, any noncriticalprogram having a sleeping status may be set to a pending status. Thesecond threshold may be representative of a minimum acceptable capacityfor continuation of one or more of the voice call communicationfunctions.

Advantageously, the techniques of the invention can substantiallyincrease the period of time for which a convergence device providesvoice call communication functions for a given battery capacity level.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example processor-based convergencedevice in which the invention is implemented.

FIG. 2 is a more detailed block diagram of an illustrative embodiment ofa multithreaded processor of the FIG. 1 convergence device.

FIG. 3 is a graph illustrating percentage utilization of an exampleprocessor for certain communication functions.

FIG. 4 is a flow diagram of a dynamic program throttling processimplemented in the convergence device of FIG. 1 in accordance with theinvention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention will be illustrated herein as implemented in anexample convergence device configured to include a multithreadedprocessor. It should be understood, however, that the invention does notrequire the use of the particular convergence device and multithreadedprocessor of the illustrative embodiment, and is more generally suitablefor use in any processor-based convergence device in which it isdesirable to provide improved conservation of battery power or othertype of power. The term “convergence device” as used herein is intendedto include without limitation a mobile telephone, a personal digitalassistant (PDA), a portable computer, or other type of processor-basedcommunication device having both voice call communication and datacommunication functions associated therewith.

FIG. 1 shows a convergence device 100 in accordance with theillustrative embodiment of the invention. The convergence deviceincludes a processor 102 coupled to a main memory 104. Also coupled tothe processor 102 are one or more transceivers 105, one or more networkinterfaces 106, and a battery monitor 107 which monitors the capacity ofa battery 108.

The transceiver(s) 105 may be associated, by way of example, with acellular communication function, such as a WCDMA communication function,or other type of voice call communication function implemented in theconvergence device. The network interface(s) 106 may be associated,again by way of example, with a wireless networking function, such as anIEEE 802.11 wireless networking function, or other type of datacommunication function implemented in the convergence device.

The battery monitor 107 and battery 108 may be entirely conventional indesign, and numerous possible implementations of such elements will bereadily apparent to those skilled in the art. Generally, the batterymonitor 107 generates at least one battery indicator signal, alsoreferred to as a battery indicator, which may indicate a percentage ofbattery capacity remaining, or other type of remaining power level orother capacity level of the battery 108. The battery indicator is anexample of what is more generally referred to herein as a powerindicator. The invention does not require the use of any particular typeof power indicator, and can be configured in a straightforward manner tooperate with any of a wide variety of such indicators that are known tothose skilled in the art. Also, the invention can be used with powersources other than batteries.

The convergence device 100 may be configured to utilize software definedradio (SDR) techniques, as described in, for example, J. Glossner, D.Iancu, J. Lu, E. Hokenek, and M. Moudgill, “A Software DefinedCommunications Baseband Design,” IEEE Communications Magazine, Vol. 41,No. 1, pages 120-128, January, 2003, and J. Glossner, E. Hokenek, and M.Moudgill, “Multithreaded Processor for Software Defined Radio,”Proceedings of the 2002 Software Defined Radio Technical Conference,Volume I, pp. 195-199, Nov. 11-12, 2002, San Diego, Calif., which areincorporated by reference herein.

An exemplary integrated circuit product implementing the SDR techniquesdescribed in the above-cited references is the SB9600™ basebandprocessor from Sandbridge Technologies, Inc. of White Plains, New York,USA.

FIG. 2 shows a more detailed view of one possible implementation of theprocessor 102. In this example, the processor 102 is implemented as amultithreaded processor, although as indicated above the use of amultithreaded processor is not a requirement of the invention. Themultithreaded processor includes a multithreaded cache memory 110, adata memory 112, a cache controller 114, an instruction decoder 116, aregister file 118, and a set of arithmetic logic units (ALUs) 120. Themultithreaded cache memory 110 is also referred to herein as amultithreaded cache.

The multithreaded cache 110 includes a plurality of thread caches 110-1,110-2, . . . 110-N, where N generally denotes the number of threadssupported by the multithreaded processor 102. Each thread thus has acorresponding thread cache associated therewith in the multithreadedcache 110. Similarly, the data memory 112 includes N distinct datamemory instances, denoted data memories 112-1, 112-2, . . . 112-N asshown.

Each of the thread caches in the multithreaded cache 110 may comprise amemory array having one or more sets of memory locations. A given threadcache may further comprise or otherwise have associated therewith athread identifier register for storing an associated thread identifier.

The multithreaded cache 110 interfaces with the main memory 104 via thecache controller 114. The cache controller 114 ensures that theappropriate instructions from main memory 104 are loaded into themultithreaded cache 110. The cache controller 114 in this illustrativeembodiment, operating in conjunction with logic circuitry or otherprocessing elements associated with the individual thread caches 110-1,110-2, . . . 110-N, may implement at least a portion of an addressmapping technique, such as fully associative mapping, direct mapping orset-associative mapping.

Illustrative set-associative mapping techniques suitable for use inconjunction with the present invention are described in U.S. patentapplication Ser. Nos. 10/161,774 and 10/161,874, both filed Jun. 4, 2002and commonly assigned with the present application, and both of whichare incorporated by reference herein.

In general, the multithreaded cache 110 is used to store instructions tobe executed by the multithreaded processor 102, while the data memory112 stores data that is operated on by the instructions. Instructionsare fetched from the multithreaded cache 110 by the instruction decoder116 which operates in conjunction with the register file 118 and theALUs 120 in controlling the execution of the instructions in aconventional manner. The operation of multithreaded processor elementssuch as 116, 118 and 120 is well understood in the art, and thereforenot described in further detail herein.

The data memory 112 is typically directly connected to the main memory104, although this connection is not explicitly shown in the figure.

One or more of the memories 104, 110 and 112 may each be configured soas to include multiple banks or other designated portions. By way ofexample, each bank may be viewed as being made up of one or more memorymodules, or a specified portion of a single memory module.

Techniques for thread-based banking of these and other memoriesassociated with a multithreaded processor are described in U.S. patentapplication Ser. No. 10/269,247, filed Oct. 11, 2002 and entitled“Method and Apparatus for Thread-Based Memory Access in a MultithreadedProcessor,” which is commonly assigned herewith and incorporated byreference herein.

The term “memory” as used herein is intended to be construed broadly soas to encompass an internal or external memory, a cache memory, a datamemory, or other arrangement of data storage elements. The invention isnot limited to any particular memory type, configuration or application.It should be noted, however, that memories are generally understood inthe processor art as being distinct from registers such as thosecomprising register file 118 in FIG. 2.

Techniques for thread-based access to register files are described inU.S. patent application Ser. No. 10/269,373, filed Oct. 11, 2002 andentitled “Method and Apparatus for Register File Port Reduction in aMultithreaded Processor,” which is commonly assigned herewith andincorporated by reference herein.

It should be noted that the particular arrangements shown in FIGS. 1 and2 are simplified for clarity of illustration, and additional oralternative elements not explicitly shown may be included, as will beapparent to those skilled in the art.

It should also be emphasized that the present invention does not requirethe particular multithreaded processor configuration shown in FIG. 2.The invention can be implemented in a wide variety of othermultithreaded or non-multithreaded processor configurations.

Examples of multithreaded processors of the type shown in FIG. 2 andsuitable for use in conjunction with the present invention are describedin the above-cited U.S. patent application Ser. No. 10/269,372.

The multithreaded processor 102 may be configured to utilize a threadingapproach referred to as token triggered threading, or other suitablethreading techniques. Pipelining is also preferably used in conjunctionwith such threading. Examples of threading and pipelining techniquessuitable for use with the present invention are described in U.S. patentapplication Ser. No. 10/269,245, filed Oct. 11, 2002 and entitled“Method and Apparatus for Token Triggered Multithreading,” which iscommonly assigned herewith and incorporated by reference herein.

In a multithreaded processor, a given thread can generally be viewed interms of hardware as well as software. The particular processor hardwareassociated with a given thread is often more particularly referred to asa hardware thread unit or simply a “context.” The term “thread” as usedherein is intended to include either software or hardware threads, orboth.

The present invention in accordance with one aspect thereof providesimproved techniques for power conservation in the convergence device 100of FIG. 1. More specifically, the invention in the illustrativeembodiment provides techniques for dynamic program throttling based onthe power indicator generated by the battery monitor 107.

As indicated previously herein, it is usually desirable in a convergencedevice such as device 100 to maintain a certain minimum voice callcommunication capability as the battery capacity decreases. Also,multimedia application processing or other types of processingassociated with data communication require significantly morecomputational capacity, and thus expend more battery power, than voicecall cellular communication.

The techniques of the invention can be used, for example, to ensure thatcellular voice call capability is provided for as long a period of timeas is possible for a given battery capacity. In such an arrangement, theprocessor 102 is configured to throttle non-essential programs, therebyprevented such programs from executing, based at least in part on thepower indicator.

FIG. 3 shows a graph illustrating percentage utilization of an exampleprocessor for certain data communication functions. In this case, theprocessor is the above-noted Sandbridge Technologies SB9600™ basebandprocessor. The processor comprises a plurality of multithreadedprocessor cores, collectively providing 9.6 billion multiply-accumulate(MAC) operations per second, and can be used to implement the basebandprocessing associated with a number of different communicationprotocols.

The graph in the figure shows the percentage utilization of the SB9600™baseband processor for data communications using each of two cellularprotocols, namely WCDMA and general packet radio service (GPRS), and onewireless local area network protocol, namely IEEE 802.11b, at variousbit rates. It should be noted that a voice call in either cellularprotocol requires less percentage utilization than any of the datacommunications shown in the graph. This is important because the higherthe utilization, the higher the energy dissipation, and the shorter thebattery life.

The SB9600™ baseband processor is an example of a processor in whichboth voice call communication and multimedia data processing or otherdata communication functions are implemented primarily in softwarerunning on multithreaded processor cores.

In a convergence device in which both the voice call communication anddata communication operations are implemented in software, it isparticularly desirable to be able to control the energy consumed by datacommunication functions as the critical battery resource is reduced.Advantageously, this enables a minimum functionality of voice callcommunication capability for some specified amount of time.

As an example, a typical convergence device battery may last eight hoursfor voice call communications and two hours for data communications whenfully charged. If one hour of data communications has taken place, thiswould also reduce the remaining voice call communication capacity tofour hours.

Using the dynamic program throttling techniques of the invention, datacommunications may be advantageously controlled when the batterycapacity falls below a designated level, so as to preserve basic voicecommunication functionality for a substantially longer period of timethan would otherwise be possible.

An exemplary dynamic program throttling technique will now be describedwith reference to FIG. 4. The figure shows a flow diagram 400 of adynamic program throttling process in the illustrative embodiment of theinvention.

In the following description, it is assumed without limitation that asequence of instructions executed on the processor 102 comprises aprocedure, and that the procedure and the data to which it appliescollectively comprise a task. A given procedure or task may be viewed asan example of what is more generally referred to herein as a program.The term “program” as used herein is thus intended to include any set ofinstructions or other type of code. The convergence device 100 isassumed without limitation to execute tasks associated with voice callcommunications as well as tasks associated with multimedia processing orother types of processing relating to data communication.

Generally, prior to execution of the dynamic program throttling processof FIG. 4, tasks are categorized into at least two categories. In thisillustrative embodiment, tasks are categorized into two categories,namely critical and noncritical, although other categorizations may beused.

Critical tasks are those that must always run whether or not sufficientbattery capacity remains. Examples of critical tasks include theoperating system that is executing on the processor 102, the graphicaluser interface of the convergence device 100, and communicationsprocessing tasks related to voice calls.

Noncritical tasks may also be categorized by capacity. One example of anoncritical task is multimedia processing, or other type of processingassociated with data communication, which may operate at multiplerefresh rates and display resolutions. A more particular example isprocessing involving MPEG video at 30 frames per second and 640×480resolution versus MPEG video at 10 frames per second and 240×180resolution. Another example is audio in mono or stereo at 64 kbps or 192kbps. Yet another example is data communications processing which mayoperate at multiple data rates, such as 802.11b at 1, 2, 5.5 or 11 Mbps.The distinguishing characteristic of these sets of noncritical tasks isthat the computational requirements vary with quality or performance butthe fundamental software is unchanged except for the capacity required.

A list of noncritical tasks is maintained, in an internal memory of theprocessor 102, in main memory 104 or elsewhere in the convergencedevice. A list of critical tasks may also be maintained. Noncriticaltasks may be specified as at least low capacity or high capacity, basedat least in part on the amount of battery capacity that is consumed bytask execution. Other organizations of noncritical tasks into differentcategories based on capacity may be used.

The term “capacity” as used herein with reference to a given task orother program is intended to include without limitation a capacityutilization of that program, or any other information specifying acapacity-related characteristic of that program. A power source capacityassociated with a given program may therefore refer, for example, to anamount of power source capacity that is utilized by that program, to aminimum or optimal amount of power source capacity that is required bythat program, or to any other type of capacity label that may beassigned to a capacity category which includes the program.

A given noncritical task may have one of a number of different statussettings associated therewith, examples of which may include executing,pending and sleeping. A task in the executing state is active andrunning on the processor. A task in the pending state is not yetexecuting, but will be allowed to run as soon as sufficient processorresources become available. A sleeping task is one that is loaded intoprocessor memory but is not allowed to transition to the pending stateuntil the operating system changes its status.

It is to be appreciated, however, that the particular task or programconfiguration, capacity levels and status settings described inconjunction with FIG. 4 are merely examples, and other arrangements canbe used in alternative embodiments.

Referring now to the flow diagram 400, a battery indicator is checked instep 402. As noted above, the battery indicator may specify a percentageof battery capacity remaining, or may be in another suitable formatindicative of battery capacity. Generally, if the battery capacity isbelow a specified threshold, denoted herein as Threshold 1, and analternate noncritical task exists that fulfills substantially the samefunction as a currently-executing noncritical task but at a lowercapacity, the currently-executing higher-capacity task is replaced bythe lower-capacity task. In a similar manner, if the battery capacity isabove Threshold 1 and an alternate higher-capacity task exists for acurrently-executing lower-capacity task, the lower-capacity task isreplaced with the higher-capacity task.

This portion of the dynamic program throttling process is implemented insteps 404 through 416 of the figure. It should be noted that a singleexecuting task can be replaced with multiple alternate capacity tasks,or multiple executing tasks can be replaced with a single alternatecapacity task, as appropriate to preserve substantially the samefunctionality while also conserving battery power.

More specifically, if the battery capacity is determined in step 404 tobe less than Threshold 1, then step 406 checks the noncritical tasklist, step 408 determines if there is any alternate capacity noncriticaltask or set of tasks which fulfills the same function, and if so step410 loads the identified low capacity task or tasks from the noncriticaltask list for execution in place of one or more currently-executingtasks. Similarly, if step 404 indicates that the battery capacity is notless than Threshold 1, then step 412 checks the noncritical task list,step 414 determines if there is any alternate capacity noncritical taskor set of tasks which fulfills the same function, and if so step 416loads the identified high capacity task or tasks from the noncriticaltask list for execution in place of one or more currently-executingtasks. If it is determined in steps 408 or 414 that there are noalternate capacity tasks that fulfill the functions ofcurrently-executing tasks, respective steps 410 and 416 are bypassed andthe process moves to step 418. Otherwise, the process moves to step 418after execution of step 410 or step 416.

As indicated above, only a single threshold, namely Threshold 1, is usedin the portion of the process performed in steps 404 through 416 tocontrol execution of noncritical tasks separated into two categoriesbased on capacity. However, multiple thresholds may be used in otherembodiments, with a corresponding increase in the number of capacitycategories.

In step 418, a determination is made as to whether the battery capacityis less than a second threshold, denoted Threshold 2 herein. This secondthreshold is generally indicative of a minimum acceptable capacity, andmay be determined, by way of example, as a capacity which permits voicecall capability in the convergence device for a designated period oftime. Generally, the portion of the process based on Threshold 2 setsall noncritical tasks to sleeping status if the battery capacity is lessthan the minimum acceptable capacity, as is shown in steps 418 through424.

More specifically, if step 418 determines that the battery capacity isless than Threshold 2, the list of noncritical tasks is checked in step420, and all noncritical tasks on the list are set to sleeping status,as indicated in step 422. Otherwise, if the battery capacity is not lessthan Threshold 2, all sleeping tasks are set to pending status in step424. After performance of step 422 or 424, the process returns to step402, and may be repeated in this manner continuously or at designatedpredetermined intervals. Once a task is set in the sleeping state, itcan only be set to pending if the battery capacity returns again aboveThreshold 2 in a subsequent iteration of the process.

The thresholds utilized in the above-described process can be determinedin a straightforward manner using any number of different techniques.

As one example, in an embodiment in which the power indicator comprisesan analog voltage signal, Threshold 1 may be approximately 2.5 volts andThreshold 2 may be approximately 1.5 volts. Of course, these particularvalues are presented by way of illustrative example only, and othersignal values can be used as the thresholds in other embodiments, asappropriate for the particular power source and other device parameters.

As another example, the power indicator may comprise a digital signal,such as a two-bit digital signal, with Threshold 1 being given by a ‘01’value and Threshold 2 being given by a ‘10’ value. More than two bitsmay be used in other embodiments. Also, combinations of analog anddigital signals may be used to provide a power indicator. As mentionedabove, the invention does not require the use of any particular type ofpower indicator.

The FIG. 4 process is an example of a multi-stage dynamic programthrottling process in accordance with the invention. This process asdescribed above utilizes a first threshold to control the substitutionof lower-capacity noncritical tasks for higher-capacity noncriticaltasks and vice-versa as appropriate, and utilizes a second threshold,lower than the first, to control transition of noncritical tasks betweenpending and sleeping states. As indicated previously, other embodimentscan use different thresholds, task states, and other parameters. Also,processing steps other than those specifically shown in the figure maybe used in alternative embodiments.

The dynamic program throttling techniques of the invention providesignificant advantages over conventional techniques. For example, theinvention in the illustrative embodiments described above providesimproved conservation of battery power in a convergence device, therebyensuring that a user will have access to voice call communicationfunctionality for as long a period of time as is practical under a givenset of operating conditions.

The above-described embodiments of the invention are intended to beillustrative only, and numerous alternative embodiments within the scopeof the appended claims will be apparent to those skilled in the art. Forexample, the particular convergence device and processor configurationsshown may be altered in other embodiments. Also, as noted above,parameters such as thresholds, noncritical task categories and taskstates, as well as the arrangement of the associated process steps, maybe varied to accommodate the particular needs of a given application.

1. A method for conserving power by controlling program execution in aconvergence device comprising a power source and at least one processorconfigured to perform processing operations associated with voice callcommunication functions and to perform processing operations associatedwith data communication functions, the processor being operative toexecute critical programs and noncritical programs, the methodcomprising the steps of: storing for at least a given one of a pluralityof noncritical programs associated with the data communication functionsan identifier of at least one alternate capacity program performingsubstantially the same function as the given program but having adifferent power source capacity associated therewith; and based at leastin part on a power indicator representative of a characteristic of thepower source, setting at least a subset of the plurality of noncriticalprograms in one of an executing state, a pending state and a sleepingstate; and further based at least in part on the power indicator,replacing execution of the given program which is in the executing stateonly with execution of the alternate capacity program which is in apending state, such that an amount of power source capacity utilizablefor the voice call communication functions is increased.
 2. The methodof claim 1 wherein the power source comprises a battery.
 3. The methodof claim 2 wherein the power indicator is representative of a remainingcapacity of the battery.
 4. The method of claim 1 wherein if the powerindicator is below a first threshold, execution of the given noncriticalprogram is replaced with execution of an alternate capacity noncriticalprogram having associated therewith a lower power source capacity thanthe given program.
 5. The method of claim 4 wherein if the powerindicator is below a second threshold that is lower than the firstthreshold, the given noncritical program and the alternate noncriticalprogram are set to the sleeping status.
 6. The method of claim 5 whereinif the power indicator is not below the second threshold, anynoncritical program having the sleeping status is set to the pendingstatus.
 7. The method of claim 5 wherein the second threshold isrepresentative of a minimum acceptable capacity for continuation of oneor more of the voice call communication functions.
 8. The method ofclaim 1 wherein if the power indicator is not below a first threshold,execution of the given noncritical program is replaced with execution ofan alternate capacity program having associated therewith a higher powersource capacity than the given program.
 9. The method of claim 1 whereinthe voice call communication functions comprise one or more functionsassociated with cellular voice call communications.
 10. The method ofclaim 1 wherein the data communication functions comprise one or morefunctions associated with multimedia processing at one or more of aspecified data rate, a specified refresh rate and a specified displayresolution.
 11. The method of claim 10 wherein the given programperforms multimedia processing at a specified data rate and thealternate capacity program performing substantially the same function asthe given program performs multimedia processing at a different datarate than the given program.
 12. The method of claim 10 wherein thegiven program performs multimedia processing at a specified refresh rateand the alternate capacity program performing substantially the samefunction as the given program performs multimedia processing at adifferent refresh rate than the given program.
 13. The method of claim10 wherein the given program performs multimedia processing at aspecified display resolution and the alternate capacity programperforming substantially the same function as the given program performsmultimedia processing at a different display resolution than the givenprogram.
 14. The method of claim 1 wherein the critical programscomprise programs utilized to implement at least one of an operatingsystem running on the processor, a graphical user interface of theconvergence device, and one or more of the voice call communicationfunctions.
 15. The method of claim 1 wherein the plurality ofnoncritical programs are categorized based on power source capacity intoat least two categories including a category at a first capacity and acategory at a second capacity, the first capacity being a lower capacitythan the second capacity.
 16. The method of claim 1 wherein theprocessor is operative to store a list of the noncritical programs withassociated capacities for one or more of the noncritical programs. 17.The method of claim 1 wherein the processor comprises a multithreadedprocessor.
 18. A convergence device comprising: a power source; and atleast one processor configured to perform processing operationsassociated with voice call communication functions and to performprocessing operations associated with data communication functions, theprocessor being operative to execute critical programs and noncriticalprograms; the convergence device storing for at least a given one of aplurality of noncritical programs associated with the data communicationfunctions an identifier of at least one alternate capacity programperforming substantially the same function as the given program buthaving a different power source capacity associated therewith; whereinbased at least in part on a power indicator representative of acharacteristic of the power source, set at least a subset of theplurality of noncritical programs in one of an executing state, apending state and a sleeping state; and further based at least in parton the power indicator, execution of the given program which is in theexecuting state is replaced only with execution of the alternatecapacity program which is in the pending state, such that an amount ofpower source capacity utilizable for the voice call communicationfunctions is increased.
 19. An article of manufacture comprising amachine-readable storage medium having embodied thereon program code foruse in conserving power by controlling program execution in aconvergence device comprising a power source and at least one processorconfigured to perform processing operations associated with voice callcommunication functions and to perform processing operations associatedwith data communication functions, the processor being operative toexecute critical programs and noncritical programs, wherein the programcode when executed by the processor implements the steps of: storing forat least a given one of a plurality of noncritical programs associatedwith the data communication functions an identifier of at least onealternate capacity program performing substantially the same function asthe given program but having a different power source capacityassociated therewith; and based at least in part on a power indicatorrepresentative of a characteristic of the power source, setting at leasta subset of the plurality of noncritical programs in one of an executingstate, a pending state and a sleeping state; and further based at leastin part on the power indicator, replacing execution of the given programwhich is in the executing state only with execution of the alternatecapacity program which is in the pending state, such that an amount ofpower source capacity utilizable for the voice call communicationfunctions is increased.